/*  This file is part of CASpp.

    CASpp is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    CASpp is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with CASpp.  If not, see <http://www.gnu.org/licenses/>.

    Copyright 2014 Jérome LAURENS

    See https://code.google.com/p/idalgo/

*/

#if !defined _CASPP_MODELS_SYMBOL_H_
#define _CASPP_MODELS_SYMBOL_H_

#include <string>
#include <boost/smart_ptr.hpp>
#include <caspp/config.h>

CASPP_NS_BEGIN

class Symbol;

typedef boost::shared_ptr<Symbol> SymbolRef;

class Symbol {
public:
    typedef Symbol __self;
    typedef std::string name_t;

    Symbol(const name_t &n);

    const name_t & name() const;

    const std::string description() const;

private:
    name_t name_m;
};


CASPP_NS_END

#endif // _CASPP_MODELS_SYMBOL_H_
